A computing system may include one or more processors, operating system(s), and a plurality of applications and the computing system may consume energy while performing the applications. One of the techniques adopted for energy optimization may include dynamic voltage and frequency scaling (DVFS) in which the voltage and frequency of the processors or parts such as cores thereof may be varied based on occurrence of some condition. In one prior approach, a dynamic optimizer may reduce the frequency of the processor while the application may suffer from Last Level Cache (LLC) misses. As depicted in FIG. 1, the processing element 110, while processing an application 105 may send a request to retrieve data from a cache 140 as depicted in block 210 of FIG. 2. If the data is present in the cache 140 (cache hit), as determined in block 250, the processing element 110 may fetch data from the cache 140 as depicted in block 280. If the data is not present in the cache 140 (cache miss), the processing element 110 may wait for data to be fetched from the memory 180 as depicted in block 290.
The application 105 may comprise several regions and some regions (first regions) may be processor-bound and some others (second regions) may be memory-bound. The processing element 110 may spend most of the time in processing the first regions of the application 105 if the data is already present in the cache 140. On the other hand, if the data is not present in the cache 140, the processing element 110 may spend most of the time waiting for data to be fetched from the memory into the cache 140 to process the second regions. In such a scenario, the second regions may be termed as more memory-bound as compared to the first regions.
As the processing element 110 may wait for data to be fetched from memory 180, it may be advantageous to decrease the frequency (F) provided to the processing element 110. As a result of operating the processing element 110 at a lower frequency, the performance loss may be minimal, but the energy savings by operating the processing element 110 at a lower frequency may be substantial. Based on how memory-bound (i.e. how much it suffers from LLC misses) a region of the application is, the frequency may be scaled down by a factor X. Such a prior technique may automatically decide what it considers to be a best trade-off between performance loss and energy savings by choosing a frequency and/or voltage value of X and Y for that program region. However, the frequency value (X) and/or voltage value (Y) so selected may not be the best trade-off from the user's perspective.